ActionController::Routing::Routes.draw do |map|
  # The priority is based upon order of creation: first created -> highest priority.
  
  # Sample of regular route:
  # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
  # Keep in mind you can assign values other than :controller and :action

  # Sample of named route:
  # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
  # This route can be invoked with purchase_url(:id => product.id)

  # You can have the root of your site routed by hooking up '' 
  # -- just remember to delete public/index.html.
  # map.connect '', :controller => "welcome"

  # Allow downloading Web Service WSDL as a file with an extension
  # instead of a file named 'wsdl'
  map.connect ':controller/service.wsdl', :action => 'wsdl'
  map.connect '', :controller => 'projects', :action => 'index'
  
  map.resource  :session,
                :member => {:logout => :get}
  map.resources :users,
                :member => {:classes => :get, :groups => :get}
  map.resources :projects do |projects|
    projects.resources  :classes,
                        :collection => {:old => :get},
                        :member => {:join => :get,
                                    :confirm_join => :post} do |classes|
      classes.resources :deadlines
      classes.resources :groups,
                        :collection => {:uploads => :get},
                        :member => {:confirm_remove_user => :get, :remove_user => :delete} do |groups|
        groups.resources  :uploads
      end
    end
  end
  # Install the default route as the lowest priority.
  map.connect ':controller/:action/:id.:format'
  map.connect ':controller/:action/:id'
end
